/**********************************************
 * 姓名：fanfutian
 * 时间：2023/11/9                             
 * 文件名：student.h  
 * 功能：创建学生类继承identity类
 *********************************************/
#pragma once

#include <iostream>
#include "identity.h"
#include "computer.h"
#include <vector>
#include <fstream>
#include "globalFile.h"
#include "order.h"
#include <map>
#include <string>

using namespace std;

/*
 * 创建学生类
 */
class Student:public Identity{
public:
    // 学生学号
    int m_id;

public:
    // 默认构造
    Student();
    // 有参构造---学号，姓名，密码
    Student(int id,string name,string pwd);
    // 重写父类的抽象函数
    virtual void showMenu();
    // 申请预约
    void applyOrder();
    // 查看自身预约
    void showMyOrder();
    // 查看所有预约
    void showAllOrder();
    // 取消预约
    void cancelOrder();

private:
    // 创建机房容器存放机房信息
    vector<ComputerRoom> v_stu_com;
    // 初始化机房容器
    void initVectorCom();
    // 创建预约信息容器
    map<int,map<string,string>> m_stu_od;
    // 初始化预约容器
    void initMapOrder();
    //传入一个字符串进行对应条件分割
    void strFindSub(map<string,string> &m,string &str);
    // 写入预约信息到文件
    void writeOrderFile(int computerRoom,int week,int kj,int status=1);
    // 更新文件数据
    void updateFile();
};